<?php
/**
 * Created by PhpStorm.
 * User: yafex
 * Date: 2020/8/9
 * Time: 18:01
 */
class serv_log extends L {

    public function msgLog()
    {
        header("content-type:text/html;charset=utf-8");
        $dir = isset($_GET['dir']) ? trim($_GET['dir']) : '';
        //读取当前路径下所有文件夹
        if ($dir == '') {
            $temp_list = scandir(ROOT_DIR . "/data/log/");
            foreach ($temp_list as $k => $v) {
                if ($v == '.' || $v == '..') {
                    continue;
                }
                echo "<a href='/?c=serv_log&a=msgLog&dir={$v}'>" . $v . "</a>&nbsp;&nbsp;&nbsp;<a href='/?c=serv_log&a=msgLog&file={$v}&dir={$v}&delFile=delFile'>删除</a><br>";
            }
            die;
        }
        $path = ROOT_DIR . "/data/log/{$dir}/";
        //删除当前文件夹下文件
        if (isset($_GET['file'])) {
            if (isset($_GET['deal']) && $_GET['deal'] == 'del') {
                echo unlink($path . $_GET['file']) ? '删除成功' : '删除失败';
                echo "<br>";
                echo "<a href='/?c=serv_log&a=msgLog&dir={$dir}'>返回</a><br>";
                die;
            }
            //删除文件夹
            if (isset($_GET['delFile'])) {
                //先删除目录下的文件：
                $dh = opendir($path);
                while ($file = readdir($dh)) {
                    if ($file != "." && $file != "..") {
                        $fullpath = $path . "/" . $file;
                        if (!is_dir($fullpath)) {
                            unlink($fullpath);
                        }
                    }
                }
                closedir($dh);
                //删除当前文件夹：
                if (!rmdir($path)) {
                    echo '删除失败';
                }
                echo "<a href='/?c=serv_log&a=msgLog'>返回</a><br>";
                die;
            }
            $cbody = file($path . $_GET['file']); //file（）函数作用是返回一行数组，txt里有三行数据，因此一行被识别为一个数组，三行被识别为三个数组
            if (count($cbody) == 0) {
                echo '无日志内容';
                die;
            }
            if (isset($_GET['sort']) && $_GET['sort'] == 'desc') {
                echo "<a href='/?c=serv_log&a=msgLog&dir={$dir}'>返回</a>&nbsp;|&nbsp;<a href='/?c=serv_log&a=msgLog&dir={$dir}&file={$_GET['file']}&sort=asc'>顺序</a><br>";
                for ($i = count($cbody)-1; $i >= 0; $i--) { //count函数就是获取数组的长度的，长度为3 因为一行被识别为一个数组 有三行
                    echo $cbody[$i];
                    echo "<br/>"; //最后是循环输出每个数组，在每个数组输出完毕后 ，输出一个换行，这样就可以达到换行效果
                }
            } else {
                echo "<a href='/?c=serv_log&a=msgLog&dir={$dir}'>返回</a>&nbsp;|&nbsp;<a href='/?c=serv_log&a=msgLog&dir={$dir}&file={$_GET['file']}&sort=desc'>倒序</a><br>";
                for ($i = 0; $i < count($cbody); $i++) { //count函数就是获取数组的长度的，长度为3 因为一行被识别为一个数组 有三行
                    echo $cbody[$i];
                    echo "<br/>"; //最后是循环输出每个数组，在每个数组输出完毕后 ，输出一个换行，这样就可以达到换行效果
                }
            }
            die;
        }
        $temp_list = scandir(ROOT_DIR . "/data/log/{$dir}/");
        echo "<a href='/?c=serv_log&a=msgLog'>../{$dir}</a><br>";
        foreach ($temp_list as $k => $v) {
            if ($v == '.' || $v == '..') {
                continue;
            }
            echo "<a href='/?c=serv_log&a=msgLog&file={$v}&dir={$dir}'>" . $v . "</a>&nbsp;&nbsp;&nbsp;<a href='/?c=serv_log&a=msgLog&file={$v}&dir={$dir}&deal=del'>删除</a><br>";
        }
    }
    public function upload() {
        header("content-type:text/html;charset=utf-8");
        $dir = 'upload';
        $path = ROOT_DIR . "/data/{$dir}/";
        if (isset($_GET['file'])) {
            if (isset($_GET['deal']) && $_GET['deal'] == 'del') {
                echo unlink($path . $_GET['file']) ? '删除成功' : '删除失败';
                echo "<br>";
                echo "<a href='/?c=serv_log&a=upload&dir={$dir}'>返回</a><br>";
                die;
            }
            $cbody = file($path . $_GET['file']); //file（）函数作用是返回一行数组，txt里有三行数据，因此一行被识别为一个数组，三行被识别为三个数组
            echo "<a href='/?c=serv_log&a=upload&dir={$dir}'>返回</a><br>";
            if (count($cbody) == 0) {
                echo '无日志内容';
                die;
            }
            for ($i = 0; $i < count($cbody); $i++) { //count函数就是获取数组的长度的，长度为3 因为一行被识别为一个数组 有三行
                echo $cbody[$i];
                echo "<br/>"; //最后是循环输出每个数组，在每个数组输出完毕后 ，输出一个换行，这样就可以达到换行效果
            }
            die;
        }
        $fileArray = [];
        if (false != ($handle = opendir(ROOT_DIR . "/data/{$dir}/"))) {
            $i = 0;
            while (false !== ($file = readdir($handle))) {
                //去掉"“.”、“..”以及带“.xxx”后缀的文件
                if ($file != "." && $file != ".." && strpos($file, ".")) {
                    $fileArray[$i] = $file;
                    if ($i == 100) {
                        break;
                    }
                    $i++;
                }
            }
            //关闭句柄
            closedir($handle);
        }
        //            $temp_list = scandir(ROOT_DIR . "/data/upload/{$dir}/");
        //        echo "<a href='/?c=serv_log&a=upload'>../{$dir}</a><br>";
        foreach ($fileArray as $k => $v) {
            if ($v == '.' || $v == '..') {
                continue;
            }
            echo "<a href='/?c=serv_log&a=upload&file={$v}&dir={$dir}'>" . $v . "</a>&nbsp;&nbsp;&nbsp;<a href='/?c=serv_log&a=upload&file={$v}&dir={$dir}&deal=del'>删除</a><br>";
        }
    }

}
return true;